#
# Resolvendo o problema dos baldes por caminhamento breadth-first
#
# A concluso dos testes  que este caminhamento gera solues mais concisas,
# mas a busca  muito mais demorada (veja o 2o. teste).
#

# 1o. teste
> (setq r (cria_baldes 0 0 ""))
> (setq f (cria_baldes 2 0 ""))
> (pega_passos r f T)
> ("Enche 5l" "Passa de 5l para 3l" "Esvazia 3l" "Passa de 5l para 3l")

# 2o. teste
# Obs: este exemplo demorou mais de vinte minutos para concluir!
> (setq r (cria_baldes 0 0 ""))
> (setq f (cria_baldes 0 1 ""))
> (pega_passos r f T)
("Enche 3l" "Passa de 3l para 5l" "Enche 3l" "Passa de 3l para 5l" "Esvazia 5l" "Passa de 3l para 5l")

#
# Resolvendo o problema dos baldes por caminhamento depth-first
#
# A concluso dos testes  que este caminhamento gera solues mais rapidamente,
# mas as solues contm passos desnecessrios.
#

# 1o. teste
> (setq r (cria_baldes 0 0 ""))
> (setq f (cria_baldes 2 0 ""))
> (pega_passos r f NIL)
("Enche 3l" "Enche 5l" "Esvazia 3l" "Passa de 5l para 3l" "Esvazia 3l" "Passa de 5l para 3l")

# 2o. teste
> (setq r (cria_baldes 0 0 ""))
> (setq f (cria_baldes 0 1 ""))
> (pega_passos r f NIL)
("Enche 3l" "Enche 5l" "Esvazia 3l" "Passa de 5l para 3l" "Esvazia 3l" "Passa de 5l para 3l" "Enche 5l" "Passa de 5l para 3l" "Esvazia 3l" "Passa de 5l para 3l" "Esvazia 3l")
